﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using GestionePolveriLib.BL.Metadata;
using FrameworkLib.BLL;

namespace GestionePolveriLib.BL
{
    [Serializable]
    [MetadataType(typeof(LottoMetadata))]
    public partial class Lotto : BLLObjectBase
    {
        public enum TipoLotto
        {
            NonAttivo = 0,
            Attivo = 1
        }

        
        private DateTime? m_datacontrollo = null;

        private TipoLotto m_tipo;
        private List<CostoAggiuntivo> m_costiAggiuntivi = null;

        [Browsable(false)]
        public long IDLotto { get; set; }
        public string CodLotto { get; set; }
        public string NumDdt { get; set; }
        public DateTime DataDdt { get; set; }
        public DateTime DataScadenzaLotto { get; set; }
        public double GiacenzaIniziale { get; set; }
        public double Giacenza { get; set; }

        public int IDPolvere { get; set; }
        public double Valore { get; set; }


       // [DisplayFormat(DataFormatString = "{0:C}")] 
        public double PrezzoUnitario { get; set; }
        
        public string NumFattura { get; set; }
        public DateTime? DataFattura { get; set; }

        [DisplayName("Fornitore")]
        public string Fornitore { get; set; }

        [DisplayName("Codice Polvere")]
        public string CodicePolvere { get; set; }

        [DisplayName("Note Carico")]
        public string NoteCarico { get; set; }

        [DisplayName("Data Controllo")]
        public DateTime? DataControllo
        {
            get { return m_datacontrollo; }
            set { m_datacontrollo = value; }
        }

        public TipoLotto Tipo
        {
            get { return m_tipo; }
            set { m_tipo = value; }
        }

        public string Famiglia { get; set; }
        public double? QuantitaFatt { get; set; }

        [Browsable(false)]
        public List<CostoAggiuntivo> CostiAggiuntivi { get; set; }

        [Browsable(false)]
        public long? IDFattura { get; set; }

        [Browsable(false)]
        public LottoNCInfo LottoNCInfo { get; set; }

        public Lotto()
        {
            m_costiAggiuntivi = new List<CostoAggiuntivo>();
        }
    }
}
